//go:build go1.13
// +build go1.13

// Package derhelpers implements common functionality
// on DER encoded data
package derhelpers

import (
	"crypto"

	"gitee.com/zhaochuninhefei/gmgo/x509"
)

// ParsePrivateKeyDER parses a PKCS #1, PKCS #8, ECDSA, or Ed25519 DER-encoded
// private key. The key must not be in PEM format.
// 国密改造后只支持sm2
func ParsePrivateKeyDER(keyDER []byte) (key crypto.Signer, err error) {
	generalKey, err := x509.ParseSm2PrivateKey(keyDER)
	return generalKey, err
	// generalKey, err := x509.ParsePKCS8PrivateKey(keyDER)
	// if err != nil {
	// 	generalKey, err = x509.ParsePKCS1PrivateKey(keyDER)
	// 	if err != nil {
	// 		generalKey, err = x509.ParseECPrivateKey(keyDER)
	// 		if err != nil {
	// 			generalKey, err = ParseEd25519PrivateKey(keyDER)
	// 			if err != nil {
	// 				// We don't include the actual error into
	// 				// the final error. The reason might be
	// 				// we don't want to leak any info about
	// 				// the private key.
	// 				return nil, cferr.New(cferr.PrivateKeyError,
	// 					cferr.ParseFailed)
	// 			}
	// 		}
	// 	}
	// }

	// switch generalKey.(type) {
	// case *rsa.PrivateKey:
	// 	return generalKey.(*rsa.PrivateKey), nil
	// case *ecdsa.PrivateKey:
	// 	return generalKey.(*ecdsa.PrivateKey), nil
	// case ed25519.PrivateKey:
	// 	return generalKey.(ed25519.PrivateKey), nil
	// }

	// // should never reach here
	// return nil, cferr.New(cferr.PrivateKeyError, cferr.ParseFailed)
}
